package com.js.rtu.mvp.bean.base;

/**
 * 协议基本格式
 *  字节无特殊说明一律默认为 16 进制数， 低位在前， 高位在后。
 *  A/D 值默认为 800-4000
 *  浮点数均低字节在前
 *  终端无法识别命令字或参数错误时， 均回复【FE】 指令， 详见“【FE】 未知
 * 指令/指令错误”
 * Created by wz on 2020/6/18.
 */
public class  CommonBean<T>  {
    /**
     * 帧头，起始字
     */
    private String Start;
    /**
     * 终端（RTU） 通信地址， 按用户要求或现场具体情况设置。
     * 8 位 ASCII 码。 即 8 位出厂编号（用‘0’ ～‘9’ 表示） ,其中 “年” ，
     * “月”各占2位，“当月编号”占4位，如：15061234（0x3135303631323334），
     * 意为 15 年 06 月编号为 1234 的终端。
     * 广播地址： 8 位全 0， 即： 00000000（0x3030303030303030）
     */
    private String Address;
    /**
     * 帧长， 十六进制 2 字节(低字节在前)， 帧长包括（Address＋Lengh＋Cmd＋Data＋CRC） 。
     */
    private int Length;
    /**
     * 命令字， 1 字节。
     */
    private int Cmd;
    /**
     * 信息段
     */
    private T Data;
    /**
     * 校验位， （Address＋Length＋Cmd＋Data） 两字节 CRC 校验低字节在前,CRC 校验采用正序。
     */
    private  String CRC;
    /**
     * 停止字
     */
    private  String End;

    public String getStart() {
        return Start;
    }

    public void setStart(String start) {
        Start = start;
    }

    public String getAddress() {
        return Address;
    }

    public void setAddress(String address) {
        Address = address;
    }

    public int getLength() {
        return Length;
    }

    public void setLength(int length) {
        Length = length;
    }

    public int getCmd() {
        return Cmd;
    }

    public void setCmd(int cmd) {
        Cmd = cmd;
    }

    public T getData() {
        return Data;
    }

    public void setData(T data) {
        Data = data;
    }

    public String getCRC() {
        return CRC;
    }

    public void setCRC(String CRC) {
        this.CRC = CRC;
    }

    public String getEnd() {
        return End;
    }

    public void setEnd(String end) {
        End = end;
    }

    @Override
    public String toString() {
        return "CommonBean{" +
                "Start='" + Start + '\'' +
                ", Address='" + Address + '\'' +
                ", Length=" + Length +
                ", Cmd=" + Cmd +
                ", Data=" + Data +
                ", CRC='" + CRC + '\'' +
                ", End='" + End + '\'' +
                '}';
    }
}
